<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <script>
    function Person(name, age) {
      this.name = name
      this.age = age
    }
    Person.prototype.eat = function () {
      console.log("eat");
    }

    function Student(id, name, age) {
      Person.call(this, name, age)
      this.id = id
    }

    // 子类要用父类的方法,要把子类原型对象指向父类的原型对象,但不能直接把父类原型对象给子类的原型,因为如果子类修改了原型上的方法,父类的也随之修改,所以要创建一个父类的实例化对象,因为除了父类自己调用这个方法只有父类的实例化对象才能使用这个方法
    Student.prototype = new Person
    // 修改子类构造器的指向
    Student.prototype.constructor = Student

    const d1 = new Student(23,"xiaoB",22)
    console.log(d1);
  </script>
</body>

</html>